[新機能]Steep上で自然言語でやり取りしながらグラフを構築できる「AI Chart Builder」をdbt Semantic Layerと連携して試してみた
さがらです。
先日、Steepの新機能として自然言語でやり取りしながらグラフを構築できる「AI Chart Builder」がBeta版として公開されました。
この機能に関して@tanuhackさんの投稿を見かけ、「これは面白そう!」と私も感じたため、実際にdbt Semantic Layerと連携して試してみた内容をまとめてみます。
事前準備
dbtの準備
dbt Labsが提供するjaffle-shopのリポジトリをクローンし、DimensionsとMetricsに対して日本語でlabelとdescriptionを加筆しました。
下記のリポジトリがその加筆したリポジトリです。あくまで私の検証目的で作成したリポジトリのため動作保証はしませんのでご了承ください。
この上で、dbt Cloud上でSemantic Layerの設定とSteepとの連携を行っています。こちらの内容については下記のブログが参考になると思います。
Steepの準備
Steepについては、AI Chart BuilderがBeta版の機能のため申請が必要となります。(2024年7月13日時点)
下記のURLから申請できますので、こちらも忘れずに申請しましょう。
試してみた
ということで、早速どのようにAI Chart Builderが使用できるか試してみます。
AI Chart Builderの起動
Steepの画面の右下に下図のようなアイコンがあるので、これを押します。
すると、下図の形でAI Chart Builderが立ち上がります!
シンプルにグラフの作成を依頼してみる
まずはシンプルにグラフ作成を依頼してみます。
「月別の売上グラフを作って」と伝えると、売上(食べ物のみ、税抜き)
というlabelを設定したMetricsを用いて2024年6月のグラフを作ってくれました。(このjaffle-shopのデータは2016年~2017年のデータしか存在ないため、No dataとなっております)
売上に関するMetricsは他にも下図のように多くありますので、その中から売上(食べ物のみ、税抜き)
を選んだのかは気になるところです。
「データが存在する期間でグラフを作成できますか?」と聞いてみても、2024年7月に年月が切り替わるだけでした。(まあこちらは、データが存在するのが8年前という状況なので、普通ではありえない質問だとも感じます。)
今度は実際にデータが存在する期間を指定し、「2016年~2017年で売上に関する月別のグラフを作って」とお願いしてみます。
すると、下図のようにグラフを作ってくれました。
まだグラフで使用しているMetricsが売上(食べ物のみ、税抜き)
であるため全体の売上についてのグラフを作ってもらうために「特定のカテゴリに絞らず、売上の合計値について同じ期間でグラフを作って」とお願いしてみます。
すると、特に絞り込みを行っていない売上(税抜き)
を用いたグラフを作成してくれました。
ここで、下部表示されるSteepからの提案である「他の販売データも含めて表示できますか?」を押してみます。
すると、注文数(食べ物を含む)
との比較したグラフが表示されました。なぜこのMetricsが選ばれたのかは気になるところです。
相談しながらグラフ作成を依頼してみる
先程は「~~のグラフを作って」という雑なお願いでグラフ作成をしてみましたが、Steep側の判断で自動でMetricsが選ばれ、グラフが作られていきました。
今度は、すぐにグラフ作成を依頼するのではなく、AI Chart Builderに売上に関するグラフの作り方を相談するような形式でグラフ作成を依頼してみます。
「売上に関するグラフを作りたいけど、どのような指標がありますか?」と聞いてみます。
すると、下図のように存在する指標を提案してくれました。
ここで、「飲み物の売上を見たい」を選択してみます。すると、売上(飲み物のみ、税抜き)
を用いたグラフを作成してくれました。(改めて、何もデータが表示されないのは検証用データが2016年~2017年にしかないためです…)
次に、他のDimensonsを用いてグラフを作ることは出来ないかと考え、「この売上を更に分析するための切り口としては、どのようなものがありますか?」と聞いてみます。
すると、下図のように別のDimensionsやMetricsを用いた分析について提示してくれました。
ここで、「顧客タイプ別に見たい」を押してみると、labelを顧客タイプとしているcustomer type
で分けられたグラフが作られました。(定義しているDimensonsのコードも併せて載せておきます。ここでの注目すべきポイントは、Dimensionsのlabelも参照した提案をAIがしてくれていることです。)
最後に、ちゃんとグラフを作ってもらいたいので「2016年~2017年のデータでグラフを作って」とお願いします。これで、相談した内容に沿ってAI Chart Builderから提案を頂き、グラフを作ることが出来ました。
AI Chart BuilderからReportやExploreへの連携
AI Chart Builderを用いて作成したグラフは、ReportやExploreに連携することも可能です。
Reportへの連携
作られたグラフの右上からAdd to report
を押すと、SteepのReportにAI Charet Builderで作成したグラフを入れることが可能です。
Explreへの連携
作られたグラフの右上からExplore
を押すと、Exploreの画面に遷移してAI Chart Builderが作成したグラフを元にExplore上で分析を行うことが可能です。
最後に
Steepの新機能として自然言語でやり取りしながらグラフを構築できる「AI Chart Builder」を試してみました。
ただ雑に「グラフを作って」という形だと勝手にMetricsを指定してしまうところはありましたが、AIに相談しながらグラフを作っていく形であれば、自分も納得のいくグラフを作っていくことができると感じました。
何より、Steep自体はまだ日本語UIがないのに、日本語でも特に問題なくやり取りが出来ていたのが素晴らしいですね!
Semantic Layer×生成AIの時代を感じる、面白い機能でした!まだBeta版ですので、一般提供となる日が楽しみです!